#!/bin/bash

CONFIG_FILE="rgym_exp/config/rg-swarm.yaml"

ZSHRC=~/.zshrc
ENV_VAR="RL_SWARM_IP"
PORT_ENV_VAR="RL_SWARM_PORTS"

# ----------- 端口配置逻辑 -----------
echo "🔧 检查端口配置..."

# 读取 ~/.zshrc 的 RL_SWARM_PORTS 环境变量
if grep -q "^export $PORT_ENV_VAR=" "$ZSHRC"; then
  CURRENT_PORTS=$(grep "^export $PORT_ENV_VAR=" "$ZSHRC" | tail -n1 | awk -F'=' '{print $2}' | tr -d '[:space:]')
  MODAL_PORT=$(echo "$CURRENT_PORTS" | cut -d',' -f1)
  API_PORT=$(echo "$CURRENT_PORTS" | cut -d',' -f2)
else
  CURRENT_PORTS=""
  MODAL_PORT=""
  API_PORT=""
fi

# 交互提示（10秒超时）
if [ -n "$CURRENT_PORTS" ]; then
  echo -n "检测到上次使用的端口配置: Modal端口=$MODAL_PORT, API端口=$API_PORT，是否继续使用？(Y/n, 10秒后默认Y): "
  read -t 10 USE_LAST_PORTS
  if [[ "$USE_LAST_PORTS" == "" || "$USE_LAST_PORTS" =~ ^[Yy]$ ]]; then
    NEW_MODAL_PORT="$MODAL_PORT"
    NEW_API_PORT="$API_PORT"
  else
    read -p "请输入Modal端口（默认3000）: " NEW_MODAL_PORT
    NEW_MODAL_PORT=${NEW_MODAL_PORT:-3000}
    read -p "请输入API端口（默认8000）: " NEW_API_PORT
    NEW_API_PORT=${NEW_API_PORT:-8000}
  fi
else
  read -p "未检测到历史端口配置，请输入Modal端口（默认3000）: " NEW_MODAL_PORT
  NEW_MODAL_PORT=${NEW_MODAL_PORT:-3000}
  read -p "请输入API端口（默认8000）: " NEW_API_PORT
  NEW_API_PORT=${NEW_API_PORT:-8000}
fi

# 保存端口配置到 ~/.zshrc
if [[ "$OSTYPE" == "darwin"* ]]; then
  sed -i '' "/^export $PORT_ENV_VAR=/d" "$ZSHRC"
else
  sed -i "/^export $PORT_ENV_VAR=/d" "$ZSHRC"
fi
echo "export $PORT_ENV_VAR=$NEW_MODAL_PORT,$NEW_API_PORT" >> "$ZSHRC"
echo "✅ 已保存端口配置: Modal端口=$NEW_MODAL_PORT, API端口=$NEW_API_PORT"

# 导出环境变量
export MODAL_PORT="$NEW_MODAL_PORT"
export SWARM_UI_PORT="$NEW_API_PORT"
echo "✅ 已导出环境变量: MODAL_PORT=$MODAL_PORT, SWARM_UI_PORT=$SWARM_UI_PORT"

# ----------- 原有逻辑继续 -----------

# 切换到脚本所在目录（假设 go.sh 在项目根目录）
cd "$(dirname "$0")"

# 激活虚拟环境并执行 run_rl_swarm.sh
if [ -d ".venv" ]; then
  echo "🔗 正在激活虚拟环境 .venv..."
  source .venv/bin/activate
else
  echo "⚠️ 未找到 .venv 虚拟环境，正在自动创建..."
  if command -v python3.10 >/dev/null 2>&1; then
    PYTHON=python3.10
  elif command -v python3 >/dev/null 2>&1; then
    PYTHON=python3
  else
    echo "❌ 未找到 Python 3.12 或 python3，请先安装。"
    exit 1
  fi
  $PYTHON -m venv .venv
  if [ -d ".venv" ]; then
    echo "✅ 虚拟环境创建成功，正在激活..."
    source .venv/bin/activate
    # 检查并安装web3
    if ! python -c "import web3" 2>/dev/null; then
      echo "⚙️ 正在为虚拟环境安装 web3..."
      pip install web3
    fi
  else
    echo "❌ 虚拟环境创建失败，跳过激活。"
  fi
fi

# 执行 run_rl_swarm_ubuntu.sh
if [ -f "./run_rl_swarm_ubuntu.sh" ]; then
  echo "🚀 执行 ./run_rl_swarm_ubuntu.sh ..."
  chmod +x ./run_rl_swarm_ubuntu.sh
  ./run_rl_swarm_ubuntu.sh
else
  echo "❌ 未找到 run_rl_swarm_ubuntu.sh，无法执行。"
fi